package zzs.generalframework.console.core.user.userattence.service;

import java.util.List;

import zzs.generalframework.common.core.user.userattence.UserAttenceBO;
import zzs.generalframework.common.core.user.userattence.UserAttenceInfo;
import zzs.generalframework.console.common.exception.ConsoleException;
import zzs.generalframework.console.common.model.ConsoleReturnBO;

/**
 * @title
 * @description
 * @project zzs-console
 * @package zzs.generalframework.console.core.user.userattence.service
 * @author zzs
 * @date 2018年2月2日
 * @version 1.0
 */
public interface IUserAttenceService
{

	/**
	 * 保存用户考勤信息
	 *
	 * @param userAttence
	 * @return
	 */
	public ConsoleReturnBO saveUserAttence(UserAttenceBO userAttenceBO);

	/**
	 * 保存用户考勤信息列表
	 *
	 * @param userAttenceBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO saveUserAttence(List<UserAttenceBO> userAttenceBOList) throws ConsoleException;

	/**
	 * 获取用户考勤信息
	 *
	 * @param userAttenceInfo
	 * @return
	 */
	public ConsoleReturnBO getUserAttence(UserAttenceInfo userAttenceInfo);

	/**
	 * 获取用户考勤信息列表
	 *
	 * @param userAttenceInfo
	 * @return
	 */
	public ConsoleReturnBO listUserAttence(UserAttenceInfo userAttenceInfo);

	/**
	 * 更新用户考勤信息
	 *
	 * @param userAttenceBO
	 * @return
	 */
	public ConsoleReturnBO updateUserAttence(UserAttenceBO userAttenceBO);

	/**
	 * 更新用户考勤信息列表
	 *
	 * @param userAttenceBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO updateUserAttence(List<UserAttenceBO> userAttenceBOList) throws ConsoleException;

	/**
	 * 删除用户考勤信息
	 *
	 * @param userAttenceBO
	 * @return
	 */
	public ConsoleReturnBO removeUserAttence(UserAttenceBO userAttenceBO);

	/**
	 * 删除用户考勤信息列表
	 *
	 * @param userAttenceBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO removeUserAttence(List<UserAttenceBO> userAttenceBOList) throws ConsoleException;

	/**
	 * 统计用户考勤信息
	 *
	 * @param userAttenceBO
	 * @return
	 */
	public Long countUserAttence(UserAttenceBO userAttenceBO);

}
